﻿''' <summary>
''' Qual é a diferença entre Nota Fiscal, Cupom Fiscal, Fatura, Duplicata e Carnê? ?
''' http://br.answers.yahoo.com/question/index?qid=20080913124946AADSp2z
''' Fatura (português brasileiro) ou factura (português europeu) é um documento comercial que representa a venda para clientes domiciliados em território nacional.No Brasil usa-se também como documento fiscal, quando inclui elementos da legislação fiscal, principalmente as do IPI-ICMS-ISSQN. Nesse caso o formulário denomina-se "nota fiscal/fatura".
''' </summary>
''' <remarks></remarks>
<Serializable()> _
Public Class Fatura

    Private _id As Nullable(Of Long)
    Public Overridable Property Id() As Nullable(Of Long)
        Get
            Return _id
        End Get
        Set(ByVal value As Nullable(Of Long))
            _id = value
        End Set
    End Property

    Private _venda As Venda
    Public Overridable Property Venda() As Venda
        Get
            Return _venda
        End Get
        Set(ByVal value As Venda)
            _venda = value
        End Set
    End Property

    Private _usuarioFaturado As Usuario
    Public Overridable Property UsuarioFaturado() As Usuario
        Get
            Return _usuarioFaturado
        End Get
        Set(ByVal value As Usuario)
            _usuarioFaturado = value
        End Set
    End Property

    Private _valor As Decimal
    Public Overridable Property Valor() As Decimal
        Get
            Return _valor
        End Get
        Set(ByVal value As Decimal)
            _valor = value
        End Set
    End Property

    Private _dataFaturamento As DateTime
    Public Overridable Property DataFaturamento() As DateTime
        Get
            Return _dataFaturamento
        End Get
        Set(ByVal value As DateTime)
            _dataFaturamento = value
        End Set
    End Property

    Private _vencimento As Nullable(Of DateTime)
    Public Overridable Property Vencimento() As Nullable(Of DateTime)
        Get
            Return _vencimento
        End Get
        Set(ByVal value As Nullable(Of DateTime))
            _vencimento = value
        End Set
    End Property

    Private _status As StatusFatura
    Public Overridable Property Status() As StatusFatura
        Get
            Return _status
        End Get
        Set(ByVal value As StatusFatura)
            _status = value
        End Set
    End Property

    Private _valorPago As Decimal
    Public Overridable Property ValorPago() As Decimal
        Get
            Return _valorPago
        End Get
        Set(ByVal value As Decimal)
            _valorPago = value
        End Set
    End Property

    Private _dataPagamento As Nullable(Of Decimal)
    Public Overridable Property DataPagamento() As Nullable(Of Decimal)
        Get
            Return _dataPagamento
        End Get
        Set(ByVal value As Nullable(Of Decimal))
            _dataPagamento = value
        End Set
    End Property


    Private _motivoCancelamento As String
    Public Overridable Property MotivoCancelamento() As String
        Get
            Return _motivoCancelamento
        End Get
        Set(ByVal value As String)
            _motivoCancelamento = value
        End Set
    End Property


End Class
